#pragma once

#include "Alice/Resource/Shader.h"

namespace Alice
{

class Vec2;
struct WindowInfo;

/*
    画笔类
    用来绘制一些 Debug 需要的基本图形
*/
class Brush
{
public:
    void Init();
    void Destroy();

    inline void SetShader(Shader& shader) { m_shader = shader; }
    inline Shader& GetShader() { return m_shader; }

    /*
        绘制一个矩形线框
    */
    void DrawRect(WindowInfo& window_info, float x, float y, float w, float h, float angle);

    /*
        计算一个点的标准化坐标
        \param dot    输入的点
        \param width  窗口的宽度
        \param height 窗口的高度
    */
    void Normalized(Vec2& dot, float width, float height);

public:
    unsigned int m_VAO;
    unsigned int m_VBO;
    unsigned int m_EBO;
    Shader m_shader;
};

} // namespace Alice
